03. Spring Boot Exception - SimpleMappingExceptionResolver
035ND C01 L04 A06 SIMPLE MAPPING RESOLVER
Instructions
Let’s make our GloablExceptionHandler as bak first, so that we can keep our code. Rename GloablExceptionHandler.java to GlobalExceptionHandler.java.bak
Create a MySimpleMappingExceptionResolver class under exceptions directory.
@Configuration
public class MySimpleMappingExceptionResolver {
@Bean
public SimpleMappingExceptionResolver getSimpleMappingExceptionResolver() {
SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver();
Properties mapping = new Properties();
mapping.put("java.lang.ArithmeticException", "mathError"); //key=exception full name. value, view name
mapping.put("java.lang.NullPointerException", "nullPointerError");
resolver.setExceptionMappings(mapping);
return resolver;
}
}
If you refresh the page, you can see error is handled.
Demo
035ND C01 L04 A07 HANDLER EXCEPTION RESOLVER EXAMPLE
Let’s rename MySimpleMappingExceptionResolver.java to MySimpleMappingExceptionResolver.java.bak
Create MyHandlerExceptionResolver class under exceptions directory.
public class MyHandlerExceptionResolver implements HandlerExceptionResolver{
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse, @Nullable Object o, Exception e) {
ModelAndView mv = new ModelAndView();
if (e instanceof ArithmeticException) {
mv.setViewName("mathError");
}
if (e instanceof NullPointerException) {
mv.setViewName("nullPointerError");
}
mv.addObject("exception", e.toString());
return mv;
}
}